package ynu.edu.model.service;

import com.baomidou.mybatisplus.extension.service.IService;
import ynu.edu.common.domain.PageDTO;
import ynu.edu.model.entity.Img2Img;

import java.util.List;
import java.util.Map;

/**
 * Img2Img服务接口
 */
public interface Img2ImgService extends IService<Img2Img> {


    /**
     * 根据任务ID查询生成记录
     * @param taskId 任务ID
     * @return 生成记录
     */
    Img2Img getByTaskId(String taskId);

    /**
     * 根据状态查询生成记录列表
     * @param status 状态
     * @return 记录列表
     */
    List<Img2Img> getByStatus(String status);

    /**
     * 根据模型名称查询生成记录列表
     * @param modelName 模型名称
     * @return 记录列表
     */
    List<Img2Img> getByModelName(String modelName);

    /**
     * 分页查询生成记录
     * @param page 页码
     * @param size 每页大小
     * @return 分页结果
     */
    PageDTO<Img2Img> getPage(int page, int size);

    /**
     * 统计生成记录数量
     * @return 记录数量
     */
    long countRecords();

    /**
     * 统计成功生成记录数量
     * @return 成功记录数量
     */
    long countSuccessRecords();

    /**
     * 统计失败生成记录数量
     * @return 失败记录数量
     */
    long countFailedRecords();

    /**
     * 获取统计信息
     * @return 统计信息
     */
    Map<String, Object> getStats();
    
    /**
     * 根据任务ID删除生成记录
     * @param taskId 任务ID
     * @return 是否删除成功
     */
    boolean deleteByTaskId(String taskId);

} 